This invention relates generally to a processor-controlled system such as a computer system and, more particularly, but not exclusively, to an electrical arrangement in the system for managing video information for rotating computer display images.
Among the many image resolutions for computer displays in the market today, a common resolution for computer displays is 640xc3x97480. Such resolution for a display refers to a display having an overall screen measuring 640 pixels wide by 480 lines high. In fact, any displays having this horizontal format (i.e., its width being greater than its height) would provide ease and convenience for certain computer operations including showing TV images, operating drawing programs and performing spreadsheet calculations. Nevertheless, displays with a vertical format (i.e., its height being greater than its width) are better suited for certain other operations such as word processing, program coding and Internet access. One may suggest a computer display having a square viewing area (i.e., equal height and width) for satisfying both requirements, but practically speaking, the most common computer displays today are rectangular, and that forces an user to choose either a horizontally or a vertically formatted display at the time of purchase.
It would be ideal if a display device could rotate between the horizontal format and the vertical format depending on user needs and preference. While this rotation feature is useful for operating numerous computer applications, it is especially advantageous for pen-based and hand-held computers where the user""s ability to comfortably operate the computer is greatly affected by the orientation and position in which the computer is held.
One known implementation discloses a computer system having a display device which can be physically rotated along its sides 90 degrees in either of two directions. Such a system can then cause the display device to display its image contents correctly adjusted for the newly-rotated display orientation. Unfortunately, typical image orientation adjustments for the rotated display monitor have significant performance penalty associated with their necessary calculation-intensive axis transformations.
It would be desirable and therefore an object for the present invention to provide a method and apparatus for rotating computer display images 90 degrees on a display device with little or no transformation calculations. It is another object for the present invention to provide the image rotation for the display device in both clockwise and counter-clockwise directions to support both left-handed and right-handed users. Yet another object for the present invention is to implement such rotation feature without significant system performance penalty.
Additional objects and advantages of the present invention will be set forth in the description which follows, and in part, will be obvious from the description or may be learned by practice of the invention. To achieve the foregoing objects, and in accordance with the purpose of the invention as embodied and broadly described herein, briefly, there is provided an apparatus including a memory system containing an image frame buffer for an associated display device, this memory system being coupled to a CPU and also being coupled to the display device via its video display controller. The image frame buffer can be manipulated by the CPU and retrieved by the video display controller for use by the display device. One aspect of the invention discloses an implementation wherein the CPU addresses the image frame buffer in a manner advantageous for CPU manipulation and the video display controller addresses the same image frame buffer in another manner advantageous for frame buffer retrieval by the video display controller. Such retrieval includes image presentations on the display device in a vertical format as well as in a horizontal format depending on user selection. During image rotation, one preferred but not limiting aspect of the invention provides the memory system, under the control of the video display controller, physically storing the image frame buffer in memory locations which are different from the locations as addressed by the CPU. Although typical display image rotation can be accomplished entirely in software, another aspect of the present invention provides an implementation that is operable entirely in hardware.
The present invention also may take advantage of the fact that the image frame buffer in the memory system is typically defined as a series of bytes storing the image information for the first horizontal line of the display device, followed by a fixed gap of unused bytes, and followed by another series of bytes for the next horizontal line of the display device, then another gap of unused bytes, and so on. For a display device measuring h pixels wide, by v pixels high, this makes an image frame buffer of v lines, each line containing the number of bytes needed to store the image data for h pixels plus a fixed number of unused gap bytes. The image frame buffer implemented as described provides further advantages for image rotation, if two other conditions are met: 1. A xe2x80x9cdefined frame bufferxe2x80x9d (which contains the portion of the frame buffer used for the actual display data) starts at a page boundary address where all the address bits needed to describe offsets within the defined frame buffer are 0 (for a 1 megabyte buffer, for example, this means the least significant 20 bits of the lowest defined buffer address should be 0, a condition met by an hexadecimal address ending in 00000); and 2. The sum of the number of image data bytes per display line plus the number of gap bytes per line is a power of 2 (such as 210=1024 bytes).